package com.youlu.campus.base.user;

import com.youlu.campus.base.base.EntityBase;
import com.youlu.campus.base.user.enums.UserStatusEnum;
import lombok.Data;
import org.springframework.data.mongodb.core.index.Indexed;

import java.util.Date;
import java.util.List;

/**
 * C端用户信息实体类
 *
 * @author: zgz
 * @date: 2020/10/28 15:28
 */
@Data
public class UserBase extends EntityBase {
    /**
     * 应用ID
     */
    protected String appId;

    //    @Indexed
    protected String openId;
    @Indexed
    protected String unionId;
    /**
     * 城市
     */
    protected String city;
    /**
     * 省份
     */
    protected String province;
    /**
     * 区
     */
    protected String area;
    /**
     * 国家
     */
    protected String country;
    /**
     * 性别
     */
    protected String gender;
    /**
     * 头像
     */
    protected String avatarUrl;
    /**
     * 昵称
     */
    protected String nickName;

    /**
     * 默认：正常状态
     */
    protected String status = UserStatusEnum.NORMAL.getValue();

    /**
     * 最后登录时间
     */
    protected Date lastLoginTime;

    /**
     * 邀请码
     */
    protected String inviteCode;
    /**
     * 大学ID
     */
    protected String universityId;
    /**
     * 大学编码
     */
    protected String universityValue;

    /**
     * 大学名称
     */
    protected String universityName;

    /**
     * 大学Logo图片
     */
    protected String universityLogo;

    /**
     * 姓名
     */
    protected String name;

    /**
     * 手机号
     */
    @Indexed
    protected String mobile;

    /**
     * 获取手机号时间
     */
    protected Date gainMobileTime;

    /**
     * qq号码
     */
    protected String qqNumber;

    /**
     * 专业
     */
    protected String major;
    /**
     * 年级 1 大一 2 大二 3 大三 4 大四 11 研一 12 研二 13 研三
     */
    protected String grade;

    /**
     * 个性签名
     */
    protected String signature;

    /**
     * 兴趣标签
     */
    protected List<String> labels;
    /**
     * email
     */
    protected String email;
    /**
     * 详细地址
     */
    protected String fullAddress;
    /**
     * 是否授权获取用户信息
     */
    protected Boolean authorized;
    /**
     * 登陆时间
     */
    protected Date loginTime;


    /**
     * 出生年月日
     */
    private String birthDate;

}
